//
//  TimerHander.swift
//  d11
//
//  Created by rhonin on 2018/11/2.
//  Copyright © 2018年 Tech_001. All rights reserved.
//

import UIKit

class TimerHander: NSObject {
    var countBlock : ((NSInteger)->())?
    
    var seconds : NSInteger = GlobalInfo.codeTimeInterval{
        willSet{
            if (self.countBlock != nil) {
                self.countBlock!(newValue)
            }
        }
    }
    func startTimer() {
        // 定义需要计时的时间
      //  self.seconds = 60
        weak var this = self
        // 在global线程里创建一个时间源
        let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.global())
        // 设定这个时间源是每秒循环一次，立即开始
        timer.scheduleRepeating(deadline:  .now(), interval: .seconds(1))
        // 设定时间源的触发事件
        timer.setEventHandler(handler: {
            // 每秒计时一次
            
            // 返回主线程处理一些事件，更新UI等等
            
            DispatchQueue.main.async {
                if let strong = this{
                    strong.seconds -=  1
                    if  strong.seconds <= 0 {
                        timer.cancel()
                       
                    }
                }
                
            }
        })
        // 启动时间源
        timer.resume()
    }
    
  
    
    func startTimer(second:NSInteger,countBlock:@escaping (NSInteger)->()){
        self.countBlock = countBlock
        seconds = GlobalInfo.codeTimeInterval
        self.startTimer()
    }
}
